package com.mys.springboot.util;

import java.util.Locale;

import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;

import com.mys.springboot.config.spring.SpringContextHolder;

public class I18nToolkit {

	/**
	 * @param code
	 *            ：对应messages配置的key.
	 * @return
	 */
	public static String getMessage(String code) {
		return getMessage(code, null);
	}

	/**
	 *
	 * @param code
	 *            ：对应messages配置的key.
	 * @param args
	 *            : 数组参数.
	 * @return
	 */
	public static String getMessage(String code, Object[] args) {
		return getMessage(code, args, "");
	}

	/**
	 *
	 * @param code
	 *            ：对应messages配置的key.
	 * @param args
	 *            : 数组参数.
	 * @param defaultMessage
	 *            : 没有设置key的时候的默认值.
	 * @return
	 */
	public static String getMessage(String code, Object[] args, String defaultMessage) {
		// 这里使用比较方便的方法，不依赖request.
		Locale locale = LocaleContextHolder.getLocale();
		return getMessageSource().getMessage(code, args, defaultMessage, locale);
	}

	/**
	 * @Description
	 *
	 *
	 * 				获取国际化资源对象
	 * @CreatedDate 2017年5月16日 下午1:44:58
	 * @CreatedUser mys
	 * @Version 1.0
	 * @LastUpdateDate 2017年5月16日 下午1:44:58
	 * @LastUpdateUser mys
	 * @return
	 */
	private static MessageSource getMessageSource() {
		return SpringContextHolder.getBean(MessageSource.class);
	}

}